Contemporary computing system memory architectures may result from tradeoffs between cost, performance and the ability to upgrade, for example, the total memory capacity of the system.
Memory systems may provide an upgrade path through the usage of modules. Such modules may be disks using an industry standard interface, dual-in-line solid state memory modules (DIMM) and the like.
A socket and connector interface may be employed which allows each module to be removed and replaced by a memory module that is faster or includes a higher capacity, or merely for the replacement of a failed memory module. A memory system may be configured with unpopulated sockets or less than a full capacity of modules (i.e., empty sockets/connectors) and provided with increased capacity at a later time with memory expansion modules. Generally, such memory systems are not capable of being reconfigured or upgraded while operating in a data base system. The reasons for these limitations may be either hardware related or software related. Often data bus architectures impose limitations as to the continuity of the data bus, the termination of the data bus, or the like.
Memories used in computing systems include, but are not limited to, random access memory (RAM) of all types (e.g., S-RAM, D-RAM); programmable read only memory (PROM); electronically alterable read only memory (EPROM); flash memory, magnetic memories of all types including Magnetoresistive Random Access Memory (MRAM), Ferroelectric RAM (FRAM or FeRAM) as well as NRAM (Nanotube-based/Nonvolatile RAM) and Phase-change memory (PRAM), and magnetic disk and tape storage media. A wide variety of industry standard interfaces are known and used. Some of these memory types are commercially available, while others are still in a prototype or research phase. The memory systems may be volatile memory, non-volatile memory or a combination of memory types and technologies. Other memories which may become suitable for use in the future include quantum devices and the like.
There is a need for memory system and computing system architectures or interconnect topologies that provide flexible and cost effective upgrade capabilities while providing high bandwidth to keep pace with microprocessor operating frequencies, increased interface bandwidth, and the like. Alternatively, lower power consumption, lower memory latency, and similar attributes for the same or similar operational characteristics are also needed.
Such memory systems may be used in data centers and other computing applications where data integrity and permanence are of importance, and the behavior of such a memory system when one or more of the components thereof has failed may be a significant consideration in the design, specification, construction and operation of the memory system and the data center. Similarly, the efficient repair of such systems has an effect on the probability of two memory-device failures occurring within the time that a first memory device failure can be diagnosed and serviced.
Where a memory system is intended to be used to store a large amount of data for relatively rapid retrieval by a using device, such as a computer, including client-server configurations, telecommunications networks, storage area networks, or the like, the architecture of the memory system may take account of a variety of design criteria, balancing the speed of access, reliability, expandability or upgradability, cost, maintainability, as examples.
The stored data may be backed up to other devices (which may be any memory type, including, for example, solid-state devices, rotating magnetic media, magnetic tape, or optical disks). One of the backup devices may be a persistent memory media type having known long-term data retention properties, such as magnetic tape, magnetic disk, FLASH or the like, so as to be unaffected by a power failure. The data, or the media upon which the data has been stored for back up, may be physically moved to, or transmitted to, another location for security or disaster recovery purposes.
Local to the memory system, the use of RAID (originally Redundant Array of Inexpensive Disks, but now applied to a system using any memory type) for storing data in a form where the failure of one or more memory circuits within the memory system can be tolerated is known.
An example of such a RAIDed memory system, which may be used for volatile or non-volatile memory modules arranged in a bus architecture may be found in U.S. Ser. No. 12/273,410, entitled “Method and System for Storage of Data in Non-Volatile Media”, by the present inventor, which is incorporated herein by reference.
Examples of memory systems that are suitable for storing large amounts of data for rapid retrieval are found in U.S. Ser. No. 11/405,083, entitled “Interconnection System”, by the present inventor, which is incorporated herein by reference.
A purchaser of a memory system may specify the chassis or housing for the memory system to be less than fully populated with memory modules. That is, there may not be a current need for a memory system to have installed the maximum amount of memory that the architecture, the motherboard, the chassis, or the like, can ultimately accept. This may extend to memory controllers, power supplies and other ancillary devices. Taking account of the historical trends in cost of semiconductor devices, a strategy of purchasing only the amount of memory that is currently needed may be attractive.
However, once a memory system is put into use, and data has been stored, the addition of memory to a memory system may present operational difficulties when such an addition is to be done without interrupting the continuous operation of the device.